﻿using BCCommon.Enums;
using BCCommon.FreightEnums;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace BCService.Common.PushMessage.PushMessageSend
{
    /// <summary>
    /// 推送消息发送
    /// </summary>
    public interface IPushMessageSendService
    {
        #region 司机申请相关
        /// <summary>
        /// 发送司机申请相关推送
        /// </summary>
        /// <param name="userIds">用户Id</param>
        /// <param name="pushMessageType">推送消息类型</param>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        /// <returns></returns>
        Task PushMessageForDriverTrain(long[] userIds, PushMessageType pushMessageType, DateTime start, DateTime end);

        #endregion

        #region 订单相关
        /// <summary>
        /// 发送订单相关推送
        /// </summary>
        /// <param name="orderId">订单Id</param>
        /// <param name="pushMessageType">推送消息类型</param>
        /// <returns></returns>
        Task PushMessageForOrder(long orderId, PushMessageType pushMessageType);
        #endregion

        /// <summary>
        /// 司机取消订单后台审核通过，给司机APP发送推送消息
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="orderNo"></param>
        /// <param name="pushMessageType"></param>
        /// <returns></returns>
        Task PushMessageForDriverAppVehicleCancelPassed(long userId, string orderNo, PushMessageType pushMessageType);
    }
}
